#ifndef RENDERTECHFACTORY_H
#define RENDERTECHFACTORY_H
#include "RenderTechMacro.h"
#include "RenderTech.h"
#include "RenderHeightMap.h"
#include "RenderStaticMesh.h"
#include "RenderAssistLineShell.h"
#include "RenderEMCubeMap.h"
#include "RenderBRDFModels.h"
class CRenderTechFactory
{
public:
	static RenderTech* GetRenderTechnique(enum RENDERTECHTYPE TechType, void* pRenderTechData = NULL)
    {
        switch(TechType)
        {
            case TRENDERHEIGHTMAP:
				 return new CRenderHeightMap();				 
			case TRENDERSTATICMESH:
				 return new CRenderStaticMesh();
			case TRENDERASSISTLINESHELL:
				 return new CRenderAssistLineShell();
			case TRENDEREMCUBEMAP:
				 return new CRenderEMCubeMap();
			case TRENDERBRDFMODELS:
				 return new CRenderBRDFModels();
			default:
				{
					printf("no appropriate render tech!\n");
					return NULL;
				}
				
        }
    }
};

#endif